package main

import (
	"bufio"
	"fmt"
	"os"
)

func main() {

	//fmt包中提供了3类读取输入的函数：
	//
	//Scan家族：从标准输入os.Stdin中读取数据，包括Scan()、Scanf()、Scanln()
	//SScan家族：从字符串中读取数据，包括Sscan()、Sscanf()、Sscanln()
	//Fscan家族：从io.Reader中读取数据，包括Fscan()、Fscanf()、Fscanln()
	//其中：
	//
	//Scanln、Sscanln、Fscanln在遇到换行符的时候停止
	//Scan、Sscan、Fscan将换行符当作空格处理
	//Scanf、Sscanf、Fscanf根据给定的format格式读取，就像Printf一样

	//<1>
	scanner := bufio.NewScanner(os.Stdin)
	//使用此中分割方式 可以获取换行符从而退出循环
	scanner.Split(bufio.ScanBytes)

	for scanner.Scan() {
		//io.WriteString(os.Stdout, scanner.Text())
		if scanner.Text() == "\n" {
			break
		}
		fmt.Fprintf(os.Stdout, "%s", scanner.Text())
	}

	//<2>

	//reader := bufio.NewReader(os.Stdin)
	//fmt.Println("请输入：...")
	//
	//s , _ := reader.ReadString('\n')
	//fmt.Println("您的输入为：", s)
}
